//API:插入和查找
//这里用的是键值对，也就是key和value
//可以用符号表实现关联数组，value和key一一对应
//value是不会为空的
//key的几种情况：
//1.最为常用自然和方便的，key是comparable，这个时候可以使用compareTo
//2.只能使用equal()方法
//3.用hashcode
//测试的client：
//使用string Integer的键值对，循环输入键值
//输出
//这里有两种存储结构，一种是链表的形式，但是这种形式比较浪费时间
//还有一种就是数组的形式，这种形式可以用两个平行数组，一个对应key，一个对应value
//用数组形式寻找和插入等的时候就可以用二分查找，大大节约了时间
//当然只是节约了查找的时间，在插入的时候，因为插入一个要将其他的移动位置，所以最差情况下的复杂度是n，平均是n/2
//对于需要动态进行查找的来说，这种结构还是不够高效，所以这个结构的升级版就是二叉查找树
public class ST <Key,Value>{
    //把键值对放入表中，值为空则清除键。a[key]=value
    //如果新的键和旧的键相等，那么则用新的覆盖旧的
    public void put(Key key,Value value)
    {

    }

    //检索，给出key得到value。
    //返回null如果给的key值不存在表中
    public Value get(Key key)
    {
        Value value;
        return value;
    }

    public void delete(Key key)
    {
       put(key, null);
    }

    //检查是否存在
    public Boolean contain(Key key)
    {
        return get(key)!=null;
    }

    public Boolean empty()
    {

    }

    public int size()
    {

    }

    //迭代表中元素
    public Iterable<Key> keys()
    {

    }
    public static void main(String[] args) throws Exception {
        
    }
}
